1. Technical Field
This invention relates generally to efficient communication over packet switching networks. More particularly, the invention relates to a novel method for performing an end-to-end estimation of available bandwidth and a congestion control in packet networks such as the Internet. The invention addresses the issues of improving the efficiency in transferring data, audio and video over of the wireline and wireless Internet.
2. Description of the Related Art
The Internet Protocol connects all variety of different networks. An IP network implements a simple store-and-forward service. Over the IP network there are two transport protocol: the Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP). The TCP is a sophisticated and complex protocol that offers a reliable, connection-oriented, end-to-end byte-stream service. It contains sophisticated algorithms of flow and congestion control in order to manage resource sharing and avoid congestion phenomena. Congestion control functions were introduced into the TCP in the late 1980s after the TCP/IP had become operational, and the network was suffering from congestion collapse. TCP congestion control has been introduced and described by V. Jacobson in his papers. Van Jacobson's seminal paper defines an additive increase/multiplicative decrease algorithm for throttling the size of the congestion window. The key idea is to probe the network capacity by increasing the load until packet loss is experienced. When a loss is experienced, the window size is reduced. More precisely, first cwnd is increased until packet losses are experienced and then it is rapidly decreased. The increasing process goes through two phases called slow start and congestion avoidance. During the slow start phase cwnd is exponentially increased until the slow start threshold (ssthresh) value is reached. This phase is intended to quickly grab available bandwidth. After the ssthresh value is reached, the cwnd is linearly increased to gently probe for extra available bandwidth. This phase is called congestion avoidance. At some point the TCP connection starts to lose packets. After a timeout is experienced, the window is drastically reduced to one and the slow start/congestion avoidance cycle repeats. This behavior is known as TCP Tahoe. Since during the slow start phase the network can be strongly underutilized, two other algorithms, called fast retransmit and fast recovery, were introduced to minimize the number of timeouts. The implementation of these algorithms provides what is currently called TCP Reno. Fast retransmit and fast recovery are both triggered after the sender receives three DUPACKs. The algorithm of fast retransmit sends again the packet that was acknowledged three times. The algorithm of fast recovery reduces the congestion window to half and enters into congestion avoidance phase. After a time out, the Congestion window is reduced to one.
Today TCP Reno is the more widely version employed. It is used in the leading Unix, Linux TCP protocol suite or in the Microsoft Windows TCP® protocol suite.
TCP was originally designed to provide reliable data delivery over conventional wireline networks for a limited range of transmission rates and propagation delays. Nowadays, communication paths with ever-larger bandwidth×delay product, wireless links, quality of service (QoS) requirements for interactive communication are all shifting the domain for which TCP was originally engineered.
We list here main modifications proposed for TCP Reno. TCP with selective acknowledgments (TCP SACK) introduces a more refined algorithm for acknowledging data TCP New Reno introduces a algorithm for recovering from many losses in a window of data.
A new congestion control algorithm is known as TCP Vegas. It throttles the congestion window based on the difference between the Actual Rate and the Expected rate. This algorithm has never been deployed in the TCP protocol suite of Microsoft or other commercial operating systems or in the Unix or Linux operating systems.
Today the TCP has a major performance problem over unreliable links such as wireless links that are often characterized by sporadic high-bit error rates, and intermittent connectivity due to handoffs. In fact, a loss due to an unreliable link is misinterpreted as a symptom of congestion by current TCP schemes and thus leads to an unnecessary shrinking of the control windows (i.e. the slow start and congestion window) with a consequent throughput reduction. It is well-know that TCP experiences a very low performance over wireless links such as in the GSM, GPRS, 3G, 4G, or UMTS systems. Analogously, it is also very well-known that TCP is not able to use the bandwidth of satellite links, which are characterized by large delays and random loss.
Recently, several schemes have been proposed to mitigate the negative effect on TCP performance of sporadic loss due to wireless links. These schemes can be classified into three groups: end-to-end proposals, split connection proposals and link layer proposal. End-to-end proposals aim at improving the performance of TCP using some form of selective acknowledgment (SACKs) to recover from multiple packet loss in a window of data. They also try to have the sender distinguish between loss due to congestion and other forms of losses using an Explicit Loss Notification (ELN) algorithm. Split connection approaches hide the wireless link by terminating the TCP connection at the base station. Such schemes use a separate connection between the base station and the destination host and can use techniques other than TCP to perform well over wireless links. Examples of these schemes are: Indirect TCP or Snoop protocol. Link layer proposals attempt to hide loss due to wireless links using local retransmissions and perhaps forward error correction over the wireless link. Examples of link layer protocols are forward error correction (FEC) and automatic repeat request (ARQ). Digital cellular systems, such as TDMA or CDMA, use ARQ protocols.
All solutions we have briefly described suffer serious drawbacks. In fact, in one case they violate the end-to-end paradigm, thus requiring complex implementation, or in the other case, they do not offer a remarkable throughput increment.
Another known problem of TCP is that it experiences a very low performance over connection with asymmetric bandwidth. These problems arise in several access networks, including bandwidth-asymmetric networks and packet radio subnetworks. In these cases, the TCP performance degrades significantly because of imperfection and variability in the ACK feedback from the receiver to the sender.
The present invention solves the problem of improving the fairness of TCP, the throughput of TCP over wireless connection and over connection with asymmetric bandwidth using an end-to-end approach. The present invention solves also other problems in real-time streaming of audio and video sources that are associated with prior art.